package com.example.hotelback.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * swagger的配置类
 * springboot的配置类都放在config目录下
 * http://localhost:8080/swagger-ui.html（低版本swagger）
 */

@Configuration // 告诉spring容器，这个类是一个配置类 配置类都要加这个注解
@EnableSwagger2 // 启动Swagger2功能，不加不会生效
public class SwaggerConfig {

    /**
     * 配置Swagger2相关的bean（组件对象）
     * 代码不用记
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo()) // 调用一个自定义方法
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.hotelback.controller")) // com包下所有api都交给Swagger2来管理
                .paths(PathSelectors.any()).build();
    }

    /**
     * 此处主要是api文档页面显示信息 自定义
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("酒店管理系统api") // 标题
                .description("酒店管理系统") // 描述
                .version("1.0") // 版本
                .build();
    }


}
